//
//  UploadImageTableViewCell.swift
//  StealPicture
//
//  Created by ?! 郭斌勇 on 16/8/12.
//  Copyright © 2016年 ?! 郭斌勇. All rights reserved.
//

import UIKit




class UploadImageTableViewCell: UITableViewCell,UIImagePickerControllerDelegate,UINavigationControllerDelegate,UITextViewDelegate {

    lazy var 信息不完善提示 = 信息提示_VC()
    
    
    @IBOutlet weak var 图片imageView: UIImageView!
    @IBOutlet weak var 标签button: UIButton!
    @IBOutlet weak var 描述textView: UITextView!
    @IBOutlet weak var 删除button: UIButton!
    @IBOutlet weak var 图片button: UIButton!
    
    weak var 代理:UploadImageViewController?
    
    var 需要更新 = true
    
    var 需要初始化 = true {
        
        willSet{
            
            if newValue{
                初始化cell()
            }
        }
        
    }
    
    
    var 图片信息:图片信息_CL?{
        
        didSet{
            
            
            if let 解封类别名称 = 图片信息?.内容类别?.名称 {
                标签button.setTitle(解封类别名称, forState: .Normal)
            }
            
            
            if let 解封图片 = 图片信息?.原图{
                图片imageView.image = 解封图片
            }
            
            
            if (图片信息?.描述 != nil) && 需要初始化 {
                描述textView.text = 图片信息?.描述
            }
            
            
            if !需要初始化{
                
                if let 解绑代理 = 代理 {
                    解绑代理.图片信息_数组[行号] = 图片信息!
                }
                
            }
            
            
            需要初始化 = false

            
        }//didSet
        
        
    }
    
    
    func 初始化cell(){
        
        标签button.setTitle("请选择标签", forState: .Normal)
    }
    
    
    var 行号:Int{
        
        get{
            return self.tag - 100
        }
        
        set{
            self.tag = newValue
            图片imageView.tag = newValue
            图片button.tag = newValue
            标签button.tag = newValue
            描述textView.tag = newValue
            删除button.tag = newValue
        }
        
    }
    
    
    
    
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }
    
    
    
    
    

    
    
    
    
    //MARK:UITextView代理
//    func textViewDidEndEditing(textView: UITextView){
//        图片信息?.描述 = textView.text
//    }
    
    func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool{
        
        if text == "\n" {
            textView.resignFirstResponder()
            return false
        }
        
        return true
    }
    
    
    func textViewDidChange(textView: UITextView){
        图片信息?.描述 = textView.text
    }
    
    
    //MARK:UIImagePickerController代理
    
    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]){
        
        图片信息?.原图 = info[UIImagePickerControllerOriginalImage] as? UIImage
        
        picker.dismissViewControllerAnimated(true, completion: nil)
        
    }
    
    
    func imagePickerControllerDidCancel(picker: UIImagePickerController){
        
        picker.dismissViewControllerAnimated(true, completion: nil)
    }
    
    
    
    func 上传图片信息() -> Int?{
        let 提示信息前缀 = "请给第\(行号 + 1)个选择"
        
        var 没有图片信息 = ""
        var 没有图片状态 = false
        var 没有标签信息 = ""
        var 没有标签状态 = false
        
        var 连接字符 = ""
        
        if ((图片信息?.原图) == nil) {
            没有图片信息 = "图片"
            没有图片状态 = true
        }
        
        if ((图片信息?.内容类别?.id) == nil)  {
            没有标签信息 = "标签"
            没有标签状态 = true
        }
        
        
        if 没有图片状态  && 没有标签状态 {
            连接字符 = "和"
        }
        
        
        if 没有图片状态  || 没有标签状态  {
            
            信息不完善提示.信息 = 提示信息前缀 + 没有图片信息 + 连接字符 + 没有标签信息
            信息不完善提示.中心垂直偏移 = Double(行号) * 40
            信息不完善提示.显示时长 = 2
            信息不完善提示.显示()
            
            return nil
        }
        
        var 图片描述 = ""
        
        if 图片信息?.描述 != nil {
            图片描述 = (图片信息?.描述)!
        }
        
        
        let 图片上传参数:[String:String] = ["PicLab":图片描述,"Typeid":(图片信息?.内容类别?.id)!,"MachineCode":""]
        
        上传jpeg图片(urlStr上传图片, 参数: 图片上传参数, name: "image", filename: "guobinyong", 图片:(图片信息?.原图)!,响应成功:{(数据:AnyObject?,响应:NSURLResponse?)->Void in
            
            guard let  数据字典 = 数据 as? [String:AnyObject] else {
                self.信息不完善提示.信息 = "第\(self.行号 + 1)上传失败"
                self.信息不完善提示.中心垂直偏移 = Double(self.行号) * 40
                self.信息不完善提示.显示时长 = 2
                self.信息不完善提示.显示()
                
                return
            }
            
            
            self.信息不完善提示.信息 = "第\(self.行号 + 1)上传成功"
            self.信息不完善提示.中心垂直偏移 = Double(self.行号) * 40
            self.信息不完善提示.显示时长 = 2
            self.信息不完善提示.显示()
            
            
            
            },
            响应失败:{(错误:NSError)->Void in
                self.信息不完善提示.信息 = "第\(self.行号 + 1)上传失败"
                self.信息不完善提示.中心垂直偏移 = Double(self.行号) * 40
                self.信息不完善提示.显示时长 = 2
                self.信息不完善提示.显示()
        })
        
        return 行号
        
    }
    
    
    
    
    

}
